<?php

/**
 * Basic
 * 
 * Модель для работы с базовыми функциями
 * 
 * @package   Basic
 * @author    Игорь Будасов aka Lord <igor.budasov@gmail.com> 
 * @copyright Игорь Будасов aka Lord <igor.budasov@gmail.com> 
 */
 
class Basic extends Zend_Db_Table_Abstract
{
	
/*------------------------------------------------------------------------------*/
	
	// имя таблицы, с которой будет работать Zend_Db_Table
	protected $_name = 'backup';

/*------------------------------------------------------------------------------*/

	/**
	* Возвращает настройку по ее ключу
	* 
	* @param int $key
	* @return Zend_Db_Table_Row_Abstract|null
	*/

	public function getOption($key = '')
	{
		$query = $this->select()
			->from('app_settings')
			->setIntegrityCheck(false)
			->where('option_key = ?', $key)
			// поставим лимит, чтоб запрос не 
			// потрошил базу дальше найденой записи
			->limit(1)
			; 
		return $this->fetchRow($query);
	}
		
/*------------------------------------------------------------------------------*/

	/**
	* Обновление настройки.
	* 
	* @param array $data
	* @param int $id
	* @return int
	*/

	public function updateOptions($data = array(), $key = '')
	{
		// установим имя таблицы на всякий случай
		$this->_setTable('app_settings');
		// обновляем     
		return $this->update($data, 'option_key = "' . $key . '"');
	}

/*------------------------------------------------------------------------------*/

	/**
	* Возвращает все пользовательские настройки
	* 
	* @return Zend_Db_Table_Row_Abstract|null
	*/

	public function getOptions()
	{
		$query = $this->select()
			->from('app_settings')
			->setIntegrityCheck(false)
			; 
		return $this->fetchAll($query);
	}
		
/*------------------------------------------------------------------------------*/

	/**
	* Возвращает записи о бэкапах
	* 
	* @return Zend_Db_Table_Row_Abstract|null
	*/

	public function getAllBackups()
	{
		$query = $this->select()
			->from('backup')
			->setIntegrityCheck(false)
			; 
		return $this->fetchAll($query);
	}
		
/*==============================================================================*/

	/**
	* Приватный метод для смены имени таблицы
	* 
	* @param string $table
	*/

	private function _setTable($table)
	{
		$this->_name = $table;
		return;
	}

/*------------------------------------------------------------------------------*/

}